home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / readers / utils / gui4cli / g4c / various / trashcan.gc < prev    next >
Text File  |  1996-10-28  |  3KB  |  116 lines

  1. G4C - Trash Can
  2.  
  3. ; This GUI, a trash can, is not really a GUI but a couple of AppIcons
  4. ; pretending to be GUIs. 
  5.  
  6. ; When ever you shove files into the appicons by click dragging icons, 
  7. ; these will be moved into a predefined assigned directory named
  8. ; TRASH_CAN:
  9.  
  10. ; When Clicked upon an other gui will open (GUIs are cheap now-days..)
  11. ; called trashcan.g, which will allow you to delete some/all files.
  12.  
  13. ; There is no close button. If you want it to quit, quit from trashcan.g
  14. ; The only reason this gui will not work correctly is if you move into
  15. ; the trashcan, an icon which has no acompanying file. The variable 
  16. ; in this case will be "" (nothing) so the trashcan.g gui will open,
  17. ; thinking that the trashcan icon has been clicked upon..
  18.  
  19.  
  20. ;======================== Upon loading of the gui ======================
  21.  
  22. xOnLoad
  23. ifexists assign TRASH_CAN    ; see if trashcan has been assigned
  24.     ;
  25. else
  26.     setvar tc_can ""
  27.     ReqFile  -1 -1 300 200 "Choose TRASH_CAN directory" DIR tc_can $$CURRENT_DIR
  28.     if $tc_can = ""
  29.         guiquit trashcan.gc
  30.         stop
  31.     else
  32.         run 'assign TRASH_CAN: $tc_can'
  33.         wait assign TRASH_CAN 200
  34.         if $$RETCODE > 0
  35.            guiquit trashcan.gc
  36.            stop
  37.         endif        
  38.     endif
  39.     delvar tc_can
  40. endif
  41. guiload guis:G4C/Various/trashcan.g        ; load the other gui
  42. gosub trashcan.gc SetTrashIcon        ; see at the end of this file
  43. guiload guis:G4C/Rtn/routines.g
  44. setvar tc_files ""
  45.  
  46.  
  47. ;-----> If something goes wrong
  48.  
  49. xOnFail
  50. ezreq 'TRASH_CAN: \nError moving files.' OK ""
  51.  
  52.  
  53. ;===========================  The EMPTY trash can icon ==================
  54.  
  55. xAppIcon  -1 -1 guis:info/TrashCanEmpty ""  tc_files OFF
  56. gadid 1
  57. if  $tc_files > " "            ; If the user dragged files
  58.     setgad  trashcan.gc 1 off
  59.     setgad  trashcan.gc 2 on
  60.     gosub   trashcan.gc TrashIn
  61. else
  62.     guiopen trashcan.g            ; If user just clicked on the icon...
  63. endif
  64.  
  65.  
  66. ;========================== The FULL trashcan icon ======================
  67.  
  68. xAppIcon  -1 -1 guis:info/TrashCanFull ""  tc_files OFF
  69. gadid 2
  70. if  $tc_files > " "
  71.    gosub trashcan.gc TrashIn
  72. else
  73.    guiopen trashcan.g
  74. endif
  75.  
  76.  
  77. ;========================== ROUTINES ====================================
  78.  
  79. ;----------> Move files into the TRASHCAN
  80.  
  81. xROUTINE TrashIn
  82. ifexists assign TRASH_CAN  ; cause someone may have un-assigned it.
  83.      cutvar tc_files cut word 1 tc_kill   ; get 1st file (there may be many)
  84.      while $tc_kill > " "                 ; start a loop
  85.         ifexists file $tc_kill              ; move the file
  86.           action move $tc_kill TRASH_CAN:
  87.         else
  88.           ifexists dir $tc_kill                  ; or maybe it's a dir
  89.              action move $tc_kill TRASH_CAN:
  90.       endif
  91.         endif
  92.         joinfile $tc_kill .info  tc_info      ; move the icon too   
  93.         ifexists file $tc_info
  94.           action move $tc_info TRASH_CAN:
  95.         endif
  96.         cutvar tc_files cut word 1 tc_kill    ; get the next file
  97.      endwhile
  98. else
  99.      EZReq "TRASH_CAN: assignment\nnot found!" "You don't say.." ""
  100. endif
  101.  
  102.  
  103. ;----------> Set the correct AppIcon... look into the trashcan.g listview
  104.  
  105. xroutine SetTrashIcon
  106. lvget trashcan.g 1 0 tc_a       ; get the first of the list of files
  107. if $tc_a > " "                  ; if there are files in the trashcan..
  108.     setgad  trashcan.gc 1 off    ; remove the full trashcan icon
  109.     setgad  trashcan.gc 2 on    ; show the empty icon
  110. Else
  111.     setgad  trashcan.gc 2 off
  112.     setgad  trashcan.gc 1 on
  113. endif
  114. delvar tc_a            ; no need to keep it around..
  115.  
  116.